#include "ThreadPool.hpp"
#include "Task.hpp"

using namespace MyThreadPool;

int main()
{
    Refresh_Log_To_Console(); // 开启日志，往显示器打印
    int task_num = 5;
    while (task_num) // 往队列里入10个任务
    {
        ThreadPool<Task_2>::GetInstance()->Equeue(Flush); // 创建单例
        task_num--;
        sleep(1);
    }
    ThreadPool<Task_2>::GetInstance()->Stop(); 
    ThreadPool<Task_2>::GetInstance()->Join();
    return 0;
}

// int main()
// {
//     Refresh_Log_To_Console(); // 开启日志，往显示器打印
//     ThreadPool<Task_2> tp;
//     tp.Start();

//     int task_num = 5;
//     while (task_num) // 往队列里入10个任务
//     {
//         tp.Equeue(Flush);
//         task_num--;
//         sleep(1);
//     }
//     tp.Stop();
//     tp.Join();
//     return 0;
// }

// template <typename T>
// class Singleton
// {
//     static T data;

// public:
//     static T *GetInstance()
//     {
//         return &data;
//     }
// };

// template <typename T>
// class Singleton
// {
//     static T *inst;

// public:
//     static T *GetInstance()
//     {
//         if (inst == NULL)
//         {
//             inst = new T();
//         }
//         return inst;
//     }
// };